package com.jia.interviewPro;

import java.util.List;

/**
 * 面试题 08.06. 汉诺塔问题  https://leetcode-cn.com/problems/hanota-lcci/submissions/
 */
public class Pro0806 {
    public void hanota2(List<Integer> A, List<Integer> B, List<Integer> C) {
        // for(int a : A) {
        //     C.add(a);
        // }
        C.addAll(A);
    }
    public void hanota(List<Integer> A, List<Integer> B, List<Integer> C) {
        hanota(A.size(), A, B, C);
    }
    private void move(List<Integer> from, List<Integer> to) {
        int pop = from.remove(from.size() - 1);
        to.add(pop);
    }
    private void hanota(int n, List<Integer> A, List<Integer> B, List<Integer> C) {
        if(n == 1) {
            move(A, C);
            return;
        }else {
            hanota(n - 1, A, C, B);
            move(A, C);
            hanota(n - 1, B, A, C);
        }

    }
}
